

// ajax end -------------------------------------------------------------------------


/**
 * 表单输入模型
 *
 * fast-from 相关设计
 */
export interface FormInputModel {
    // 字段名，提交表单时候用的字段名
    name: string;
    // 字段值，经过格式化，能被组件使用的值
    value: any;
    // 标签值，展示在前端，能被用户看到的字段名
    label: string;
    // 占位符，用于提示的字段
    placeholder: string;
    // 可选的值，组件配置参数
    options: any;

    // 栈格布局中，输入框 label 和 input 的宽度比例
    col: array<number>;
    // 栈格布局中，输入框本身宽度占比
    span: number;

    // 3大属性：隐藏、只读、禁用
    hidden: boolean;
    // 是否只读
    readonly: boolean;
    // 是否禁用
    disabled: boolean;

    // 是否必填
    require: boolean;
}

/**
 * 文本格式化函数
 *
 * 将输入值转为特定的格式之后进行输出:
 * - 如果原始数据为空，或者转换失败，则使用默认值，
 * - 如果默认值不存在，则使用原始值
 *
 * @param val 输入值
 * @param def 默认值
 */
export type TextFormatter = (val: any, def: string) => string;

/**
 * 比较函数：
 *   - 返回负数：a < n
 *   - 返回正数：a > b
 *   - 返回 0：a === b
 *
 * @param a - 输入值 a
 * @param b - 输入值 b
 */
export type Compare = <T>(a: T, b: T) => int;

